/**
 * Created in 2012-3-2.
 */
package com.surekam.mnai.service.extractor;

import java.net.URL;
import java.util.Map;

/**
 * 基于HTTP协议的URL创建者接口。
 * 
 * @author 吴政
 * 
 */
public interface IHttpURLBuilder {

	/**
	 * 返回要创建的URL路径的端点。
	 * 
	 * @return 端点
	 */
	String getEndpoint();

	/**
	 * 设置要创建的URL路径的端点。
	 * 
	 * @param endpoint
	 *            端点
	 */
	void setEndpoint(String endpoint);

	/**
	 * 获取指定的请求参数。
	 * 
	 * @param key
	 *            用于识别请求的关键字
	 * @return 与指定键关联的值
	 */
	public String getRequestProperty(String key);

	/**
	 * 设置一般请求参数。
	 * 
	 * @param key
	 *            用于识别请求的关键字
	 * @param value
	 *            与该键关联的值
	 */
	void setRequestProperty(String key, String value);

	/**
	 * 移除请求参数。
	 * 
	 * @param key
	 *            用于识别请求的关键字
	 */
	public void removeRequestProperty(String key);

	/**
	 * 清空请求参数。
	 */
	public void clearRequestProperty();

	/**
	 * 获取所有的请求参数表。
	 * 
	 * @return 所有请求参数的表
	 */
	public Map<String, String> getRequestProperties();

	/**
	 * 根据既定的参数创建一个URL对象。
	 * 
	 * @return 创建的URL对象
	 */
	URL build() throws Exception;
}
